Code coverage report for src/listener-expression.js

Statements: 29.17% (14 / 48)      Branches: 0% (0 / 12)      Functions: 36.36% (4 / 11)      Lines: 30.43% (14 / 46)      Ignored: none     

All files » src/ » listener-expression.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 801     1   1   1     1 1                     1       1     1   1 1                     1                                               1             1          
System.register([], function (_export) {
  "use strict";
 
  var ListenerExpression, Listener;
 
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
 
  return {
    setters: [],
    execute: function () {
      ListenerExpression = (function () {
        function ListenerExpression(eventManager, targetEvent, sourceExpression, delegate, preventDefault) {
          _classCallCheck(this, ListenerExpression);
 
          this.eventManager = eventManager;
          this.targetEvent = targetEvent;
          this.sourceExpression = sourceExpression;
          this.delegate = delegate;
          this.discrete = true;
          this.preventDefault = preventDefault;
        }
 
        ListenerExpression.prototype.createBinding = function createBinding(target) {
          return new Listener(this.eventManager, this.targetEvent, this.delegate, this.sourceExpression, target, this.preventDefault);
        };
 
        return ListenerExpression;
      })();
 
      _export("ListenerExpression", ListenerExpression);
 
      Listener = (function () {
        function Listener(eventManager, targetEvent, delegate, sourceExpression, target, preventDefault) {
          _classCallCheck(this, Listener);
 
          this.eventManager = eventManager;
          this.targetEvent = targetEvent;
          this.delegate = delegate;
          this.sourceExpression = sourceExpression;
          this.target = target;
          this.preventDefault = preventDefault;
        }
 
        Listener.prototype.bind = function bind(source) {
          var _this = this;
 
          if (this._disposeListener) {
            if (this.source === source) {
              return;
            }
 
            this.unbind();
          }
 
          this.source = source;
          this._disposeListener = this.eventManager.addEventListener(this.target, this.targetEvent, function (event) {
            var prevEvent = source.$event;
            source.$event = event;
            var result = _this.sourceExpression.evaluate(source);
            source.$event = prevEvent;
            if (result !== true && _this.preventDefault) {
              event.preventDefault();
            }
            return result;
          }, this.delegate);
        };
 
        Listener.prototype.unbind = function unbind() {
          if (this._disposeListener) {
            this._disposeListener();
            this._disposeListener = null;
          }
        };
 
        return Listener;
      })();
    }
  };
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL2JpbmRpbmcvc3JjL2xpc3RlbmVyLWV4cHJlc3Npb24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O01BQWEsa0JBQWtCLEVBc0J6QixRQUFROzs7Ozs7O0FBdEJELHdCQUFrQjtBQUNsQixpQkFEQSxrQkFBa0IsQ0FDakIsWUFBWSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFDO2dDQUR2RSxrQkFBa0I7O0FBRTNCLGNBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0FBQ2pDLGNBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0FBQy9CLGNBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUN6QyxjQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUN6QixjQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztBQUNyQixjQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztTQUN0Qzs7QUFSVSwwQkFBa0IsV0FVN0IsYUFBYSxHQUFBLHVCQUFDLE1BQU0sRUFBQztBQUNuQixpQkFBTyxJQUFJLFFBQVEsQ0FDakIsSUFBSSxDQUFDLFlBQVksRUFDakIsSUFBSSxDQUFDLFdBQVcsRUFDaEIsSUFBSSxDQUFDLFFBQVEsRUFDYixJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLE1BQU0sRUFDTixJQUFJLENBQUMsY0FBYyxDQUNsQixDQUFDO1NBQ0w7O2VBbkJVLGtCQUFrQjs7O29DQUFsQixrQkFBa0I7O0FBc0J6QixjQUFRO0FBQ0QsaUJBRFAsUUFBUSxDQUNBLFlBQVksRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUM7Z0NBRHRGLFFBQVE7O0FBRVYsY0FBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7QUFDakMsY0FBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7QUFDL0IsY0FBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7QUFDekIsY0FBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0FBQ3pDLGNBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0FBQ3JCLGNBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1NBQ3RDOztBQVJHLGdCQUFRLFdBVVosSUFBSSxHQUFBLGNBQUMsTUFBTSxFQUFDOzs7QUFDVixjQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBQztBQUN2QixnQkFBRyxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBQztBQUN4QixxQkFBTzthQUNSOztBQUVELGdCQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7V0FDZjs7QUFFRCxjQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztBQUNyQixjQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsVUFBQSxLQUFLLEVBQUc7QUFDaEcsZ0JBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7QUFDOUIsa0JBQU0sQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0FBQ3RCLGdCQUFJLE1BQU0sR0FBRyxNQUFLLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNwRCxrQkFBTSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7QUFDMUIsZ0JBQUcsTUFBTSxLQUFLLElBQUksSUFBSSxNQUFLLGNBQWMsRUFBQztBQUN4QyxtQkFBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQ3hCO0FBQ0QsbUJBQU8sTUFBTSxDQUFDO1dBQ2YsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDbkI7O0FBOUJHLGdCQUFRLFdBZ0NaLE1BQU0sR0FBQSxrQkFBRTtBQUNOLGNBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFDO0FBQ3ZCLGdCQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztBQUN4QixnQkFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztXQUM5QjtTQUNGOztlQXJDRyxRQUFRIiwiZmlsZSI6Ii9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL2JpbmRpbmcvc3JjL2xpc3RlbmVyLWV4cHJlc3Npb24uanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgTGlzdGVuZXJFeHByZXNzaW9uIHtcbiAgY29uc3RydWN0b3IoZXZlbnRNYW5hZ2VyLCB0YXJnZXRFdmVudCwgc291cmNlRXhwcmVzc2lvbiwgZGVsZWdhdGUsIHByZXZlbnREZWZhdWx0KXtcbiAgICB0aGlzLmV2ZW50TWFuYWdlciA9IGV2ZW50TWFuYWdlcjtcbiAgICB0aGlzLnRhcmdldEV2ZW50ID0gdGFyZ2V0RXZlbnQ7XG4gICAgdGhpcy5zb3VyY2VFeHByZXNzaW9uID0gc291cmNlRXhwcmVzc2lvbjtcbiAgICB0aGlzLmRlbGVnYXRlID0gZGVsZWdhdGU7XG4gICAgdGhpcy5kaXNjcmV0ZSA9IHRydWU7XG4gICAgdGhpcy5wcmV2ZW50RGVmYXVsdCA9IHByZXZlbnREZWZhdWx0O1xuICB9XG5cbiAgY3JlYXRlQmluZGluZyh0YXJnZXQpe1xuICAgIHJldHVybiBuZXcgTGlzdGVuZXIoXG4gICAgICB0aGlzLmV2ZW50TWFuYWdlcixcbiAgICAgIHRoaXMudGFyZ2V0RXZlbnQsXG4gICAgICB0aGlzLmRlbGVnYXRlLFxuICAgICAgdGhpcy5zb3VyY2VFeHByZXNzaW9uLFxuICAgICAgdGFyZ2V0LFxuICAgICAgdGhpcy5wcmV2ZW50RGVmYXVsdFxuICAgICAgKTtcbiAgfVxufVxuXG5jbGFzcyBMaXN0ZW5lciB7XG4gIGNvbnN0cnVjdG9yKGV2ZW50TWFuYWdlciwgdGFyZ2V0RXZlbnQsIGRlbGVnYXRlLCBzb3VyY2VFeHByZXNzaW9uLCB0YXJnZXQsIHByZXZlbnREZWZhdWx0KXtcbiAgICB0aGlzLmV2ZW50TWFuYWdlciA9IGV2ZW50TWFuYWdlcjtcbiAgICB0aGlzLnRhcmdldEV2ZW50ID0gdGFyZ2V0RXZlbnQ7XG4gICAgdGhpcy5kZWxlZ2F0ZSA9IGRlbGVnYXRlO1xuICAgIHRoaXMuc291cmNlRXhwcmVzc2lvbiA9IHNvdXJjZUV4cHJlc3Npb247XG4gICAgdGhpcy50YXJnZXQgPSB0YXJnZXQ7XG4gICAgdGhpcy5wcmV2ZW50RGVmYXVsdCA9IHByZXZlbnREZWZhdWx0O1xuICB9XG5cbiAgYmluZChzb3VyY2Upe1xuICAgIGlmKHRoaXMuX2Rpc3Bvc2VMaXN0ZW5lcil7XG4gICAgICBpZih0aGlzLnNvdXJjZSA9PT0gc291cmNlKXtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnVuYmluZCgpO1xuICAgIH1cblxuICAgIHRoaXMuc291cmNlID0gc291cmNlO1xuICAgIHRoaXMuX2Rpc3Bvc2VMaXN0ZW5lciA9IHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy50YXJnZXQsIHRoaXMudGFyZ2V0RXZlbnQsIGV2ZW50ID0+e1xuICAgICAgdmFyIHByZXZFdmVudCA9IHNvdXJjZS4kZXZlbnQ7XG4gICAgICBzb3VyY2UuJGV2ZW50ID0gZXZlbnQ7XG4gICAgICB2YXIgcmVzdWx0ID0gdGhpcy5zb3VyY2VFeHByZXNzaW9uLmV2YWx1YXRlKHNvdXJjZSk7XG4gICAgICBzb3VyY2UuJGV2ZW50ID0gcHJldkV2ZW50O1xuICAgICAgaWYocmVzdWx0ICE9PSB0cnVlICYmIHRoaXMucHJldmVudERlZmF1bHQpe1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LCB0aGlzLmRlbGVnYXRlKTtcbiAgfVxuXG4gIHVuYmluZCgpe1xuICAgIGlmKHRoaXMuX2Rpc3Bvc2VMaXN0ZW5lcil7XG4gICAgICB0aGlzLl9kaXNwb3NlTGlzdGVuZXIoKTtcbiAgICAgIHRoaXMuX2Rpc3Bvc2VMaXN0ZW5lciA9IG51bGw7XG4gICAgfVxuICB9XG59XG4iXX0=